package cn.com.cfae.iras.doc.analyze.parse.model;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 发行机构
 */
public class FXJGModel extends BizBaseModel {

    /**
     * 发行机构
     */

    public static String MODEL_NAME = "FXJG";

    /**
     * 发行人
     */
    private static String FXR = "FXR";

    /**
     * 主承销商
     */
    private static String ZCXS = "ZCXS";

    /**
     * 集中簿记建档技术支持机构（北金所）
     */
    private static String JZBJJDJG = "JZBJJDJG";

    /**
     * 审计事务所
     */
    private static String SJSWS = "SJSWS";

    /**
     * 律师事务所
     */
    private static String LSSWS = "LSSWS";
    /**
     * 信用评级机构
     */
    private static String XYPJJG = "XYPJJG";

    /**
     * 信用评级机构
     */
    private static String DJTG = "DJTG";

    private static String XYZJJG = "XYZJJG";

    private static Map<String, String> items = new HashMap<>();

    private static List<String> filters = new ArrayList<>();


    static {
        items.put(FXR, "发行人|企业|公司");//删除公司
        items.put(JZBJJDJG, "集中簿记建档技术支持机构|集中簿记建档系统技术支持机构|技术支持机构|集中簿记建档系统|北金所|北京金融资产交易所|集中簿记建档");
        items.put(ZCXS, "主承销商及簿记管理人|承销商|主承销商|簿记管理人|主承销商及簿记建档人|主承销商兼簿记建档人");
        items.put(SJSWS, "发行人审计机构|审计事务所|会计师事务所|审计机构|会计事务所");
        items.put(LSSWS, "律师事务所|法律顾问|发行人律师|发行人法律顾问|公司法律顾问|发行人律师事务所|公司律师");
        items.put(XYPJJG, "评级机构|信用评级机构|评级公司");
        items.put(DJTG, "登记|托管|登记托管|结算机构|登记托管结算机构|登记托管结算|托管人|登记托管机构|托管机构|结算机构");
        items.put(XYZJJG, "信用增进机构");
    }

    public static List<ExtractItem> createExtractItemList() {
        List<ExtractItem> extractItemList = new ArrayList<>();
        items.forEach((key, value) -> {
            ExtractItem extractItem = new ExtractItem();
            extractItem.setItemName(key);
            extractItem.setSynonyms(value.split(SYNONYM_SPLIT_CHAR));
            extractItemList.add(extractItem);
        });
        return extractItemList;
    }


    public  static String getExtractItemCoreSynonyms(String extractItemName){
        return items.get(extractItemName);
    }

}
